1. Field of the Invention
The present invention relates generally to information processing environments and, more particularly, to improved methods for executing relational operations over relational data and data retrieved from SOAP operations.
2. Description of the Background Art
Computers are very powerful tools for storing and providing access to vast amounts of information. Computer databases are a common mechanism for storing information on computer systems while providing easy access to users. A typical database is an organized collection of related information stored as “records” having “fields” of information. As an example, a database of employees may have a record for each employee where each record contains fields designating specifics about the employee, such as name, home address, salary, and the like.
Between the actual physical database itself (i.e., the data actually stored on a storage device) and the users of the system, a database management system or DBMS is typically provided as a software cushion or layer. In essence, the DBMS shields the database user from knowing or even caring about the underlying hardware-level details. Typically, all requests from users for access to the data are processed by the DBMS. For example, information may be added or removed from data files, information retrieved from or updated in such files, and so forth, all without user knowledge of the underlying system implementation. In this manner, the DBMS provides users with a conceptual view of the database that is removed from the hardware level. The general construction and operation of database management systems is well known in the art. See e.g., Date, C., “An Introduction to Database Systems, Volumes I and II”, Addison Wesley, 1990; the disclosure of which is hereby incorporated by reference.
A new key open standard that addresses the cost and complexity of software integration is the Simple Object Access Protocol (SOAP). SOAP is a popular way to make remote method calls to classes and objects that exist on a remote server. SOAP relies on the popular XML protocol to define the format of the information and then adds the necessary HTTP headers to send it. XML (Extensible Markup Language) is itself a basic format for representing data. By specifying a standard way to encode parameters and return values in XML, and standard ways to pass them over some common network protocols like HTTP, SOAP provides a way for applications to communicate with each other over the Internet in a manner that is independent of platform. This enables the creation of various “web services”—that is, applications or components that are self-contained, self-describing modular applications that can be published, located, and invoked across the Internet.
The issue is how to use existing tools and data models provided in current relational database management systems to access and work with data that is retrieved using SOAP. Existing solutions which enable current database systems to work (at least to some extent) with data retrieved using SOAP all have limitations. These existing solutions include creating a database stored procedure that translates data retrieved from a specific SOAP invocation to relational data. Another solution is to create a user defined function in order to emulate a web service. Other possible solutions include modifying the web (SOAP) service to return relational data or creating custom code that retrieves SOAP data (and possibly relational data as well) and performs a specific relational operation on the data.
Disadvantages of these existing solutions include that several of the above solutions require a developer to program a custom application or solution (e.g., modify a SOAP web service) in order to access and perform relational operations on data retrieved using SOAP operations. Also, existing solutions may not work properly on data retrieved using SOAP with all relational operations (e.g., JOIN and UNION). In addition, existing solutions may not support other typical database operations, such as the ability to create views based on the data retrieved using SOAP.
What is needed is a solution for automatically and transparently mapping data retrieved from SOAP operations into relational database management systems, thereby allowing relational operations to be performed over the data. The solution should not require custom programming to access and work with SOAP data, nor should it require modifications to the existing database repository or SOAP (web) service. Ideally, the solution should also provide the ability to perform database optimizations based on network performance of the SOAP (web) service. The present invention fulfills these and other needs.